// pages/productDetail/productDetail.js
Page({
  data: {
    product: {},          // 当前商品的数据
    selectedModel: '',    // 用户选择的商品型号
    quantity: 1           // 购买数量
  },

  // 页面加载时触发的生命周期函数
  onLoad: function(options) {
    const productId = options.id // 获取传递的商品ID
    this.fetchProductDetail(productId) // 获取商品详情
  },

  // 获取商品详情的方法
  fetchProductDetail: function(id) {
    wx.cloud.database().collection('products').doc(id).get({
      success: res => {
        this.setData({
          product: res.data
        })
      },
      fail: err => {
        wx.showToast({
          title: '获取商品详情失败',
          icon: 'none'
        })
        console.error('获取商品详情失败', err)
      }
    })
  },

  // 商品型号选择事件
  onModelChange: function(e) {
    const index = e.detail.value
    const selectedModel = this.data.product.models[index]
    this.setData({
      selectedModel: selectedModel
    })
  },

  // 数量减少
  decreaseQuantity: function() {
    if (this.data.quantity > 1) {
      this.setData({
        quantity: this.data.quantity - 1
      })
    }
  },

  // 数量增加
  increaseQuantity: function() {
    if (this.data.quantity < this.data.product.stock) {
      this.setData({
        quantity: this.data.quantity + 1
      })
    } else {
      wx.showToast({
        title: '库存不足',
        icon: 'none'
      })
    }
  },

  // 数量输入变化
  onQuantityChange: function(e) {
    let qty = parseInt(e.detail.value)
    if (isNaN(qty) || qty < 1) {
      qty = 1
    } else if (qty > this.data.product.stock) {
      qty = this.data.product.stock
      wx.showToast({
        title: '库存不足',
        icon: 'none'
      })
    }
    this.setData({
      quantity: qty
    })
  },

  // 加入购物车
  addToCart: function() {
    const { product, selectedModel, quantity } = this.data
    if (!selectedModel) {
      wx.showToast({
        title: '请选择商品型号',
        icon: 'none'
      })
      return
    }
    if (quantity > product.stock) {
      wx.showToast({
        title: '库存不足',
        icon: 'none'
      })
      return
    }

    const userId = wx.getStorageSync('userId') // 获取用户ID
    if (!userId) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      })
      return
    }

    // 调用云函数添加到购物车
    wx.cloud.callFunction({
      name: 'addToCart',
      data: {
        userId: userId,
        productId: product._id,
        model: selectedModel,
        quantity: quantity
      },
      success: res => {
        if (res.result.success) {
          wx.showToast({
            title: '已加入购物车',
            icon: 'success'
          })
        } else {
          wx.showToast({
            title: '加入购物车失败',
            icon: 'none'
          })
        }
      },
      fail: err => {
        wx.showToast({
          title: '调用失败',
          icon: 'none'
        })
        console.error('调用云函数失败', err)
      }
    })
  },

  // 立即购买
  buyNow: function() {
    const { product, selectedModel, quantity } = this.data
    if (!selectedModel) {
      wx.showToast({
        title: '请选择商品型号',
        icon: 'none'
      })
      return
    }
    if (quantity > product.stock) {
      wx.showToast({
        title: '库存不足',
        icon: 'none'
      })
      return
    }

    const userId = wx.getStorageSync('userId') // 获取用户ID
    if (!userId) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      })
      return
    }

    // 调用云函数进行购买操作
    wx.cloud.callFunction({
      name: 'purchase',
      data: {
        userId: userId,
        productId: product._id,
        model: selectedModel,
        quantity: quantity
      },
      success: res => {
        if (res.result.success) {
          wx.showToast({
            title: '购买成功',
            icon: 'success'
          })
          // 这里可以跳转到订单页面或其他逻辑
        } else {
          wx.showToast({
            title: res.result.message || '购买失败',
            icon: 'none'
          })
        }
      },
      fail: err => {
        wx.showToast({
          title: '调用失败',
          icon: 'none'
        })
        console.error('调用云函数失败', err)
      }
    })
  }
})
